import pandas as pd
import numpy as np
path='../../exercise_data/Euro2012_stats.csv'
'''
这段代码的功能是从指定路径读取一个制表符分隔的CSV文件，并将其加载到一个Pandas DataFrame中。
pd1：读取后的数据会被存储在这个变量中。
pd.read_csv(path, sep='\t')：使用Pandas库的read_csv函数读取文件，path是文件路径，sep='\t'表示文件中的字段是以制表符（Tab）分隔的。
'''
pd1=pd.read_csv(path)
pd.set_option('display.max_columns', None)  # 显示所有列
pd.set_option('display.max_colwidth', None)  # 显示每列的完整内容
pd.set_option('display.width', 1000)  # 增加显示的总宽度
print(pd1.head(5))
###########################################
#只选取 Goals 这一列
# print(pd1.Goals)
# print(pd1['Goals'])
###########################################
#有多少球队参与了2012欧洲杯？
print(pd1['Team'].nunique())
###########################################
#该数据集中一共有多少列(columns)
print(pd1.shape[1])
###########################################
#哪些球队 Yellow Cards 的平均值大于 5
print(pd1[pd1['Yellow Cards']>5][['Team','Yellow Cards']])
###########################################
#将数据集中的列Team, Yellow Cards和Red Cards单独存为一个名叫discipline的数据框
pd2=pd1[['Team','Yellow Cards','Red Cards']]
print(pd2)
###########################################
#对数据框pd2按照先Red Cards再Yellow Cards进行排序
pd22=pd2.sort_values(by=['Red Cards','Yellow Cards'],ascending=[False,False])
print(pd22)
###########################################
#计算每个球队拿到的黄牌数的平均值
print(pd2['Yellow Cards'].mean())
###########################################
#找到进球数Goals超过6的球队数据
print(pd1[pd1['Goals']>6]['Team'])
###########################################
#选取以字母G开头的球队数据
print(pd1[pd1['Team'].str[0:1]=='G']['Team'])
# print(pd1[pd1.Team.str.startswith('G')])
###########################################
#选取前7列
"""
pd1.iloc[:, 0:7]：使用 iloc 方法选择 pd1 数据框中的所有行（: 表示所有行）
和第 0 到第 6 列（0:7 表示从第 0 列到第 6 列，不包括第 7 列）。
print()：将选择的列数据打印输出。
"""
print(pd1.iloc[:,0:7])
###########################################
#选取除了最后3列之外的全部列
print(pd1.iloc[:,0:-3])

###########################################
#找到英格兰(England)、意大利(Italy)和俄罗斯(Russia)的射正率(Shooting Accuracy)
"""
数：
values：可以是单个值、列表、元组、字典或另一个 Series。如果 values 是字典，键应该是列名，值应该是要检查的集合。
返回值：
返回一个布尔 DataFrame 或 Series，形状与调用对象相同，值为 True 或 False，表示对应位置的元素是否在 values 中。
"""
print(pd1[pd1['Team'].isin(['England','Italy','Russia'])][['Team','Shooting Accuracy']])


